package com.ktjy.aop;

import org.aspectj.lang.JoinPoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TransactionAspect {
    private static final Logger log = LoggerFactory.getLogger(TransactionAspect.class);

    public void before(JoinPoint jp){
        log.info("【TransactionAspect 前置增强】 模拟打开数据库并开启事务...");
        log.info("SqlSession sqlSession = MyBatisUtil.createSqlSession(false);");
    }

    public void afterReturning(JoinPoint jp,Object result){
        log.info("【TransactionAspect 后置增强】 模拟正常完成业务提交事务...");
        log.info("session.commit();");
    }

    public void afterThrowing(JoinPoint jp,Throwable e){
        log.info("【TransactionAspect 异常抛出增强】 模拟业务回滚事务，异常信息为：" +
                e.getMessage());
        log.info("session.rollback();");
    }
    public void after(JoinPoint jp){
        log.info("【TransactionAspect 最终增强】模拟业务完成释放资源...");
        log.info("MyBatisUtil.createSqlSession(sqlSession);");
    }
}
